FALSE,
(GDestroyNotify) g_mapped_file_unref,
mfile);
+ mfile = NULL;
+ g_variant_ref_sink (container);
g_variant_get (container, "(uv)",
&ret_type, &ret_variant);
ret_type = GUINT32_FROM_BE (ret_type);
"Corrupted metadata object '%s'; invalid type %d", path, ret_type);
goto out;
}
- mfile = NULL;
}
ret = TRUE;
*out_type = ret_type;
- *out_variant = ret_variant;
+ *out_variant = g_variant_ref_sink (ret_variant);
ret_variant = NULL;
out:
if (ret_variant)
GUINT32_TO_BE ((guint32)stbuf.st_gid),
GUINT32_TO_BE ((guint32)stbuf.st_mode),
xattrs);
- xattrs = NULL; /* was floating */
g_variant_ref_sink (dirmeta);
if (!import_gvariant_object (self, OSTREE_SERIALIZED_DIRMETA_VARIANT,
g_free (dest_basename);
g_free (tmp_dest_basename);
g_free (dest_dirname);
+ g_free (dest_path);
return ret;
}
const char *filename;
const char *checksum;
- g_variant_get_child (files_variant, i, "(ss)", &filename, &checksum);
+ g_variant_get_child (files_variant, i, "(&s&s)", &filename, &checksum);
g_hash_table_insert (ret_pdata->files, g_strdup (filename), g_strdup (checksum));
}
GVariant *metadata = NULL;
ParsedDirectoryData *child_dir = NULL;
- g_variant_get_child (dirs_variant, i, "(sss)",
+ g_variant_get_child (dirs_variant, i, "(&s&s&s)",
&dirname, &tree_checksum, &meta_checksum);
if (!parse_tree (self, tree_checksum, &child_tree, error))
child_dir = g_new0 (ParsedDirectoryData, 1);
child_dir->tree_data = child_tree;
child_dir->metadata_sha256 = g_strdup (meta_checksum);
- child_dir->meta_data = g_variant_ref_sink (metadata);
+ child_dir->meta_data = metadata;
g_hash_table_insert (ret_pdata->directories, g_strdup (dirname), child_dir);
}
g_variant_builder_add (&dirs_builder, "(sss)",
name, g_checksum_get_string (dir_checksum), dir->metadata_sha256);
+ g_checksum_free (dir_checksum);
}
serialized_tree = g_variant_new ("(u@a{sv}@a(ss)@a(sss))",
ret = TRUE;
out:
+ if (components)
+ g_ptr_array_unref (components);
g_free (component_abspath);
g_free (abspath);
return ret;
GUINT64_TO_BE (g_date_time_to_unix (now)),
g_checksum_get_string (root_checksum),
root->metadata_sha256);
+ g_variant_ref_sink (commit);
if (!import_gvariant_object (self, OSTREE_SERIALIZED_COMMIT_VARIANT,
commit, &ret_commit, error))
goto out;